package com.bh.kysys.mapper;

import com.bh.common.basemapper.RootMapper;
import com.bh.kysys.domain.JcZone;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 行政区域Mapper接口
 * 
 * @author slx
 * @date 2023-03-24
 */
@Mapper
public interface JcZoneMapper extends RootMapper<JcZone>
{

    /**
     * 查询行政区域列表
     * 
     * @param jcZone 行政区域
     * @return 行政区域集合
     */
    public List<JcZone> selectJcZoneList(JcZone jcZone);


    /**
     * 查询行政区域
     *
     * @param id 行政区域主键
     * @return 行政区域
     */
    public JcZone selectJcZoneById(Long id);

    /**
     * 查询行政区域列表
     *
     * @param zid
     * @return 行政区域集合
     */
    public List<JcZone> selectJcZoneListByZid(@Param("zid") Long zid);


    /**
     * 查询行政区域列表
     * @param name
     * @return
     */
    public List<JcZone> selectJcZoneByName(@Param("name") String name);

    /**
     * 查询行政区域列表
     * @param name
     * @param zid
     * @return
     */
    public JcZone selectJcZoneByNameAndZid(@Param("name") String name, @Param("zid") Long zid);

    /**
     * 查询行政区域列表
     *
     * @param zids
     * @return 行政区域集合
     */
    @MapKey("zid")
    public Map<String, HashMap<String, Long>> selectIsTreeLeafByZids(Long[] zids);

    /**
     * 批量删除用户信息
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteJcZoneById(Long[] ids);

    /**
     *
     * @param jcZone
     * @return
     */
    public int updateJcZoneByOrderNum(JcZone jcZone);
}
